package com.example.gaoyang.util;

import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

@Component
public class Base64Util {
    /**
     * 将字符串编码为小写的 Base64 字符串（不截断）。
     *
     * @param input 输入字符串
     * @return 小写的 Base64 编码字符串
     */
    public static String encodeToLowercase(String input) {
        // 使用 Base64 进行编码
        return Base64.getUrlEncoder().withoutPadding().encodeToString(input.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * 将小写的 Base64 字符串解码为原始字符串。
     *
     * @param input 小写的 Base64 编码字符串
     * @return 解码后的原始字符串
     */
    public static String decodeFromLowercase(String input) {
        try {
            byte[] decodedBytes = Base64.getUrlDecoder().decode(input);
            return new String(decodedBytes, StandardCharsets.UTF_8);
        } catch (Exception e) {
            throw new RuntimeException("Token解码失败", e);
        }
    }

}
